-
Notifications
You must be signed in to change notification settings - Fork 348
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
feat(api): user generated Kamelet versioning #5807
Conversation
✔️ Unit test coverage report - coverage increased from 43.7% to 43.8% (+0.1%) |
73c08f0
to
f9f159e
Compare
✔️ Unit test coverage report - coverage increased from 43.7% to 43.8% (+0.1%) |
This implementation is not compatible with camel core (as documented), not only for Kamelets, but also for the Pipe, since there is an additional version field in the endpoint uri. With this solution Camel K sets an additional divergent element from camel core. So with this implementation a Probably an alternative solution is to add support for labels in the metadata, for example: I would say that having a different name (as explained in the linked issue) would be easier to control the old kamelet names, or having a different namespace to have the different versions. |
Thanks for you review.
As explained in the PR description "This is useful for Kamelets developed by users and published in a cluster for which the user wants to provide a versioning model.". It is an optional field that won't alter existing behavior it is not intended to be necessarily supported by the core but a support for users with a given need. It is useful as it let the user define their versioning in the cluster and it's up to the user to switch version either through the operator or with their internal tooling (ie, mounting the given Kamelet version into a configmap consumable by the running application). Using the Kamelet, as is, would keep using the main spec. I'm testing a multiversion Kamelets with JBang and it works as expected:
You can see that the Integration parameter is not take in account as it is only meaningful for the operator. I can add some more clear description to the API if you think it makes sense. As for the Pipe it does not introduce any new parameter. The endpoint properties already exists and is an open field. In fact, we are already using the Same for the maintainability point. This is not meant to be something to include in the Kamelet provided in the catalog for the reason you're mentioning. It's up to the user to use and maintain. Completely optional feature.
|
f9f159e
to
90739db
Compare
✔️ Unit test coverage report - coverage increased from 43.7% to 43.8% (+0.1%) |
Good as an optional way for users who don't want to rename kamelets. Thanks for the detailed explanation. |
With this change, the user will be able to provide an alternative version specification to the main one. This is useful for Kamelets developed by users and published in a cluster for which the user wants to provide a versioning model. The change is backward compatible and optional only. Default behavior will stick to use the spec provided in default.
Closes #4395
Release Note